#include "BulletDynamics/ConstraintSolver/btSolverConstraint.h"
#ifdef __cplusplus
extern "C" {
#endif
btSolverConstraint* bullet_NewbtSolverConstraint(){
	btSolverConstraint* wrap_out = new btSolverConstraint();
	return wrap_out;
}

btVector3* bullet_btSolverConstraint_GetFieldOfM_angularComponentA(btSolverConstraint* c_this){
	return (btVector3*)(&c_this->m_angularComponentA);
}

btVector3* bullet_btSolverConstraint_GetFieldOfM_angularComponentB(btSolverConstraint* c_this){
	return (btVector3*)(&c_this->m_angularComponentB);
}

double bullet_btSolverConstraint_GetFieldOfM_appliedImpulse(btSolverConstraint* c_this){
	return (double)(c_this->m_appliedImpulse);
}

double bullet_btSolverConstraint_GetFieldOfM_appliedPushImpulse(btSolverConstraint* c_this){
	return (double)(c_this->m_appliedPushImpulse);
}

double bullet_btSolverConstraint_GetFieldOfM_cfm(btSolverConstraint* c_this){
	return (double)(c_this->m_cfm);
}

btVector3* bullet_btSolverConstraint_GetFieldOfM_contactNormal1(btSolverConstraint* c_this){
	return (btVector3*)(&c_this->m_contactNormal1);
}

btVector3* bullet_btSolverConstraint_GetFieldOfM_contactNormal2(btSolverConstraint* c_this){
	return (btVector3*)(&c_this->m_contactNormal2);
}

double bullet_btSolverConstraint_GetFieldOfM_friction(btSolverConstraint* c_this){
	return (double)(c_this->m_friction);
}

int bullet_btSolverConstraint_GetFieldOfM_frictionIndex(btSolverConstraint* c_this){
	return (int)(c_this->m_frictionIndex);
}

double bullet_btSolverConstraint_GetFieldOfM_jacDiagABInv(btSolverConstraint* c_this){
	return (double)(c_this->m_jacDiagABInv);
}

double bullet_btSolverConstraint_GetFieldOfM_lowerLimit(btSolverConstraint* c_this){
	return (double)(c_this->m_lowerLimit);
}

int bullet_btSolverConstraint_GetFieldOfM_overrideNumSolverIterations(btSolverConstraint* c_this){
	return (int)(c_this->m_overrideNumSolverIterations);
}

btVector3* bullet_btSolverConstraint_GetFieldOfM_relpos1CrossNormal(btSolverConstraint* c_this){
	return (btVector3*)(&c_this->m_relpos1CrossNormal);
}

btVector3* bullet_btSolverConstraint_GetFieldOfM_relpos2CrossNormal(btSolverConstraint* c_this){
	return (btVector3*)(&c_this->m_relpos2CrossNormal);
}

double bullet_btSolverConstraint_GetFieldOfM_rhs(btSolverConstraint* c_this){
	return (double)(c_this->m_rhs);
}

double bullet_btSolverConstraint_GetFieldOfM_rhsPenetration(btSolverConstraint* c_this){
	return (double)(c_this->m_rhsPenetration);
}

int bullet_btSolverConstraint_GetFieldOfM_solverBodyIdA(btSolverConstraint* c_this){
	return (int)(c_this->m_solverBodyIdA);
}

int bullet_btSolverConstraint_GetFieldOfM_solverBodyIdB(btSolverConstraint* c_this){
	return (int)(c_this->m_solverBodyIdB);
}

double bullet_btSolverConstraint_GetFieldOfM_upperLimit(btSolverConstraint* c_this){
	return (double)(c_this->m_upperLimit);
}

#ifdef __cplusplus
}
#endif
